Virtualization refers to the use of computer software (e.g., “virtual machines” or “system images”) to emulate or otherwise implement the functions or features of a physical computing device, typically so that the physical computing resources can be shared. For example, multiple virtual machines (VMs) can run concurrently on the same physical computing system. In the context of input-output (I/O) devices, virtualization technologies can be used to allow multiple virtual machines to share the same I/O hardware resources.
“Cloud” computing often refers to the provision of computing resources as a service, usually by a number of computer servers that are networked together at location(s) that are remote from the location from which the services are requested. A cloud server or portions of its resources may be allocated using virtualization. In a cloud environment, multiple system images (SIs) may be executing on disparate processing components of independent networked servers.
Virtualized environments, such as VMs and system images (SIs), can be corrupted with malicious software or be otherwise compromised from a security or performance standpoint. As the number of VMs or SIs increases, the risk of security breaches, denial of service (DOS) attacks, and other security- and/or performance-related problems may increase as well.